home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-09-17 | 86.1 KB | 2,083 lines |
- FAQ for isapnptools
- $Author: fox $
- $Date: 1999/02/14 22:43:57 $
-
- Answers to Frequently Asked Questions about isapnptools. $Revision:
- 0.9 $
- ______________________________________________________________________
-
- Table of Contents
-
- 1. General
-
- 1.1 Where can I get the latest FAQ ?
- 1.2 What do isapnptools do ?
- 1.3 How do I use isapnptools to configure my ISA PnP cards ?
- 1.4 Who wrote/maintains isapnptools ?
- 1.5 What is the latest version, and where can I get it from ?
- 1.6 What about security ?
- 1.7 Can isapnptools be used to configure PCI hardware.
- 1.8 Is there a version of isapnptools for PCI ?
- 1.9 NT,WIN95,... works ok now, will running isapnp screw it up ?
- 1.10 Isn't there a better way to configure PnP cards ?
- 1.11 How do I find out if my card is supported ?
- 1.12 Where can I find out more ?
- 1.13 My card works, but it's not in the Hardware-HOWTO (appendix C).
-
- 2. General - Fundamentals
-
- 2.1 What is a driver (module) ?
- 2.2 What is a logical device ?
-
- 3. General - Compilation/installation
-
- 3.1 I get lots of link errors
- 3.2 I've got the binary distribution and the binaries won't run.
- 3.2.1 Linux
- 3.2.2 DOS
- 3.3 Problems compiling for 2.1.x kernels
- 3.4 I've upgraded my library/C-compiler and now have problems compiling the programs.
- 3.5 Can isapnptools be used with operating systems other than Linux.
- 3.6 What do I do if I think I've found a bug or got some other problem ?
-
- 4. General - Running
-
- 4.1 Which kernel do I need ?
- 4.2 I get "Permission denied" when trying to run the programs.
- 4.3 The program crashes with a "Segmentation fault"
- 4.4 Where can I get example configuration files ?
- 4.5 How can I find out how the card is configured ?
- 4.6 Isapnp fails with error "Error occurred executing request 'ISOLATE' on or around line 13 --- further action aborted"
- 4.7 What is a good readport address to use ?
- 4.8 Pnpdump doesn't find all the PnP boards in the system.
- 4.9 Pnpdump cannot see the boards after using the -r option.
- 4.10 Pnpdump reports "No boards found"
- 4.11 What does "Error occurred executing request 'LD 2' on or around line..." mean ?
- 4.12 What does "End tag checksum 0xb8 (BAD)" mean (in the pnpdump output) ?
- 4.13 What does "IO range check attempted while device activated" mean (from isapnp) ?
- 4.14 What does "IO range check failed for n bytes of IO at addr" mean (from isapnp) ?
- 4.15 I think I've configured the board correctly, but the driver still can't find it.
- 4.16 What does "/proc/bus/pci/devices not found, so PCI resource conflict not checked" mean ?
- 4.17 Is there a graphical interface available ?
-
- 5. General - Kernel/Driver issues
-
- 5.1 Do I need to configure CONFIG_PNP in the kernel ?
- 5.2 I've configured my ... using isapnptools, but the kernel doesn't recognise it.
- 5.3 I get the error message "... module support already loaded" when trying to load the ... module.
- 5.4 I'm having trouble getting interrupts to work.
- 5.5 I've configured the card, but /proc/interrupts still shows the interrupt as unused.
- 5.6 The driver for my card cannot be built as a module.
- 5.7 As soon as I run isapnp, my machine locks up.
- 5.8 How can I stop
-
- 6. Upgrading
-
- 6.1 I've upgraded isapnptools from my favourite distribution and it has wiped out my
- 6.2 What should I do to upgrade isapnptools.
-
- 7. Resources
-
- 7.1 Determining resource usage (linux).
- 7.2 I've got a ..., which runs fine under Win95, how can I find out the port settings ?
- 7.3 Examining Win95 resource settings.
- 7.4 The windows CTPNP.CFG file.
- 7.5 How can I prevent
- 7.6 Common problems
- 7.7 What does isapnp mean by "Fatal - resource conflict allocating DMA1".
- 7.8 Do I have to configure all the devices.
-
- 8. Advanced usage.
-
- 8.1 Common configurations on multiple machines, Version 1.11 and earlier.
- 8.2 Common configurations on multiple machines, Version 1.12 and later.
- 8.3 Sending a RESET CSN command.
- 8.4 Dumping the boards configuration registers.
-
- 9. Soundcards.
-
- 9.1 I've got an AWE32/AWE64, but Linux doesn't recognise it.
- 9.1.1 The output from pnpdump (before configuration).
- 9.1.2 The editted configuration file for isapnp.
- 9.1.3 An extract of the bootup script to configure sound.
- 9.2 Problems with the Aztech Sound Galaxy 16 III-3D PnP sound card.
- 9.3 CD sound doesn't work (one channel or no channels).
- 9.4 What to do about "sb: Interrupt test on IRQ10 failed - device disabled."
-
- 10. Modems.
-
- 10.1 General.
- 10.2 I've got a WinModem, and I've followed all the instructions, but it still doesn't work.
- 10.3 I've got a PCI modem - what about that ?
- 10.4 I've got a modem that works in DOS and Windows, but not Linux.
- 10.5 I've configured the device, but it is really SLOW.
- 10.6 I've configured the device, but it doesn't work.
- 10.7 What's this about not using /dev/cua1 ?
- 10.8 How can I check the modem is working ?
- 10.9 Thunderlink modems (PCT3880).
- 10.10 USR Robotics Sportster.
-
- 11. Network cards.
-
- 11.1 The card supports non PnP configuration.
-
- 12. IDE ports.
-
- 13. Disclaimers etc.
-
- ______________________________________________________________________
-
- 11.. GGeenneerraall
-
- 11..11.. WWhheerree ccaann II ggeett tthhee llaatteesstt FFAAQQ ??
-
- The latest FAQ is available from the isapnptools home website as a
- text file <http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.txt>,
- a set of html files
- <http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html.tar.gz>,
- or in the sgml source
- <http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.sgml>.
-
- To see if the one on the website is newer, compare the revision with
- the revision of this document.
-
- 11..22.. WWhhaatt ddoo iissaappnnppttoooollss ddoo ??
-
- Isapnptools allow you to configure the ISA PnP cards complying with
- the Plug and Play ISA Specification Version 1.0a, which may be
- obtained from ftp://ftp.microsoft.com/developr/drg/Plug-and-
- Play/Pnpspecs/ <ftp://ftp.microsoft.com/developr/drg/Plug-and-
- Play/Pnpspecs/>.
-
- These boards use registers instead of jumpers to set the board
- address, interrupt assignments etc (resource allocations). In
- addition, the board contains a description of the resources that need
- to be allocated, with limits on the settings allowable.
-
- The BIOS (or any other PnP configuration program such as Win95 or
- isapnptools) uses a special protocol described in the specification to
- discover all the PnP boards, and allocate the resources so that there
- are no conflicts.
-
- Because the BIOS rarely does the job properly, it is better to get it
- to do as little as possible, and use isapnptools to configure the
- resource settings. This is not always possible with newer BIOSes, so
- see also ``Pnpdump reports "No boards found"''.
-
- 11..33.. HHooww ddoo II uussee iissaappnnppttoooollss ttoo ccoonnffiigguurree mmyy IISSAA PPnnPP ccaarrddss ??
-
- See the instructions in the INSTALL <INSTALL> file for the overall
- process. See the various README files for examples and specific
- details. See the FAQ too, particularly for sound cards.
-
- In the event of difficulties, see the FAQ first for answers.
-
- 11..44.. WWhhoo wwrroottee//mmaaiinnttaaiinnss iissaappnnppttoooollss ??
-
- Peter Fox, with some help and suggestions from many others. See the
- README <README>. Contributors with useful suggestions and improvements
- may have their name and email address added to the README, if you
- don't want this to happen, please tell me.
-
- 11..55.. WWhhaatt iiss tthhee llaatteesstt vveerrssiioonn,, aanndd wwhheerree ccaann II ggeett iitt ffrroomm ??
-
- See the home site
- <http://www.roestock.demon.co.uk/isapnptools/index.html>
-
- 11..66.. WWhhaatt aabboouutt sseeccuurriittyy ??
-
- Isapnptools must be run as root, and should not be made setuid root.
- The configuration files used, such as /etc/isapnp.conf and
- /etc/isapnp.gone should be owned by, and writeable only by, root.
-
- This should minimize any interest in buffer overflow problems, as you
- have to be root in the first place.
-
- In an attempt to prevent trojans being introduced into the isapnptools
- programs, I maintain md5sums of all the files on my web site, see
- md5.txt <http://www.roestock.demon.co.uk/isapnptools/md5.txt>
- If you suspect the md5 sums have been tampered with, please tell me,
- and I can check against the originals.
-
- md5sum is part of the GNU textutils package.
-
- If you are worried about security, I suggest you maintain isapnptools
- my compiling from source. After doing an exhaustive check for trojans,
- you can then simply produce diffs of the new version against the old
- and check that.
-
- 11..77.. CCaann iissaappnnppttoooollss bbee uusseedd ttoo ccoonnffiigguurree PPCCII hhaarrddwwaarree..
-
- No.
-
- 11..88.. IIss tthheerree aa vveerrssiioonn ooff iissaappnnppttoooollss ffoorr PPCCII ??
-
- The nearest equivalent is pciutils. Have a look at freshmeat; see
- http://freshmeat.net/news/1999/01/28/917541046.html for instance.
-
- 11..99.. NNTT,,WWIINN9955,,...... wwoorrkkss ookk nnooww,, wwiillll rruunnnniinngg iissaappnnpp ssccrreeww iitt uupp ??
-
- No. isapnp <isapnp.8.html> only configures the cards for Linux. When
- you reboot, the BIOS will restore the card's settings. Note that Win95
- will carry out the function of the BIOS (in terms of locating and
- configuring PnP boards) on PCs without a PnP BIOS.
-
- Having said that, you must be careful using the REG
- <isapnp.conf.5.html#REG> and POKE <isapnp.conf.5.html#POKE> keywords
- that you don't write to some register that corrupts the board resource
- data. (The resource data is often in EEPROM, and can be written to by
- suitable software to initialise it). See also ``What does "End tag
- checksum 0xb8 (BAD)" mean (in the pnpdump output) ?''.
-
- 11..1100.. IIssnn''tt tthheerree aa bbeetttteerr wwaayy ttoo ccoonnffiigguurree PPnnPP ccaarrddss ??
-
- Well, I quite like isapnptools as it is predictable, and doesn't make
- the kernel any bigger (but then, I may be slightly biased).
-
- However, you may want to check out a configuration manager for linux
- which now supports 2.0.30: CM for linux <http://lucifer.hemmet.s-
- hem.chalmers.se/~dwh>.
-
- You also might want to look at Tom Lees' kernel PnP suite at
- <http://www-jcr.lmh.ox.ac.uk/~pnp/>, the files are in
- <ftp.lmh.ox.ac.uk:/pub/linux/pnp/>.
-
- Work is underway to integrate PnP support into the kernel. See
- http://www.cs.utwente.nl/~vanrein/vha/
- <http://www.cs.utwente.nl/~vanrein/vha/>. As this involves changing
- all the drivers, it may take a while.
-
- There is a GUI interface to isapnptools, see ``Is there a graphical
- interface available ?'' for more info.
-
- 11..1111.. HHooww ddoo II ffiinndd oouutt iiff mmyy ccaarrdd iiss ssuuppppoorrtteedd ??
-
- Note that the following are ideas. Linux is a fast moving world, and
- due to the age of this document, likely to be out of date. New
- hardware is gaining support all the time.
-
- See the Harware-HOWTO.
-
- Check your linux distribution's hardware compatibility list. For
- example, Redhat 5.2's is at Redhat 5.2 support
- <http://www.redhat.com/support/docs/rhl/intel/rh52-hardware-
- intel-13.html>.
-
- Refer to the card vendor and manufacturer for Linux support
- information. If they won't support linux, tell your friends, and tell
- them you're telling your friends. Assuming you specified that the card
- was for use with Linux, you should be able to change it without too
- much trouble (having been sold a product unfit for purpose etc).
-
- See also ``Where can I find out more ?''
-
- See also the device specific sections of this FAQ below.
-
- 11..1122.. WWhheerree ccaann II ffiinndd oouutt mmoorree ??
-
- A good place to find out more about PC hardware in general is the pc-
- hardware-faq, regularly posted to the newsgroups:
- comp.sys.ibm.pc.hardware.video, comp.sys.ibm.pc.hardware.comm,
- comp.sys.ibm.pc.hardware.storage, comp.sys.ibm.pc.hardware.cd-rom,
- comp.sys.ibm.pc.hardware.systems, comp.sys.ibm.pc.hardware.networking,
- comp.sys.ibm.pc.hardware.chips, comp.sys.ibm.pc.hardware.misc,
- comp.answers, news.answers.
-
- A good place to find out about Linux configuration etc are the HOWTOs
- and mini-HOWTOS. These can be found on MetaLab
- <ftp://MetaLab.unc.edu/pub/Linux/docs/HOWTO/> or from TSX-11
- <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO/> or try http://www.linux-
- howto.com/ <http://www.linux-howto.com/>.
-
- These are also normally supplied with standard Linux distributions.
-
- A more practical guide to using these tools (and fixing other
- configuration problems) can be found on the SuSe Linux support
- database. See /usr/doc/support-db/sdb_e/rb_isapnp.html
- <file:/usr/doc/support-db/sdb_e/rb_isapnp.html> if you've installed
- their database, or http://www.suse.de/ <http://www.suse.de/>.
-
- See if you can find any information/statements on the vendor websites.
-
- 11..1133.. MMyy ccaarrdd wwoorrkkss,, bbuutt iitt''ss nnoott iinn tthhee HHaarrddwwaarree--HHOOWWTTOO ((aappppeennddiixx CC))..
-
- Tell the Hardware-HOWTO maintainer !
-
- 22.. GGeenneerraall -- FFuunnddaammeennttaallss
-
- 22..11.. WWhhaatt iiss aa ddrriivveerr ((mmoodduullee)) ??
-
- If you don't know what this is, I suggest you start by reading the
- Kernel-HOWTO available from MetaLab
- <ftp://MetaLab.unc.edu/pub/Linux/docs/HOWTO/Kernel-HOWTO> or from
- TSX-11 <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO/Kernel-HOWTO>, or
- from their respective mirrors. See also www.linux-howto.com
- <http://www.linux-howto.com/>.
-
- 22..22.. WWhhaatt iiss aa llooggiiccaall ddeevviiccee ??
-
- The functionality of a card is split into many different logical
- devices for convenience. The idea is that each logical device is
- independent and has it's own driver.
-
- This way, the user can decide to use as much or as little of the card
- functionality as required, and also allows common drivers for many
- different boards (the drivers being written for each logical device
- function).
-
- So for example a soundcard will typically have at least four different
- logical devices:
-
- 1. The basic soundcard
-
- 2. Soundcard extensions such as wave table
-
- 3. A game port
-
- 4. A CD-rom port.
-
- The logical devices are numbered starting from 0, incrementing by 1.
- The first entry in the resource data applies to logical device 0, the
- next to logical device 1, and so on.
-
- Each logical device has its own set of resources ( IO
- <isapnp.conf.5.html#IO> addresses, INT
- <isapnp.conf.5.html#INT>errupts, DMA <isapnp.conf.5.html#DMA> channels
- etc) to program, and isapnp <isapnp.8.html> uses the LD
- <isapnp.conf.5.html#LD> command to select the logical device to be
- configured.
-
- 33.. GGeenneerraall -- CCoommppiillaattiioonn//iinnssttaallllaattiioonn
-
- 33..11.. II ggeett lloottss ooff lliinnkk eerrrroorrss
-
- Linking gives loads of errors such as
-
- pnpdump.o: In function `dumpdata':
- pnpdump.o(.text+0x11b0): undefined reference to `__outbc'
- pnpdump.o(.text+0x11c4): undefined reference to `__outb'
- pnpdump.o(.text+0x11db): undefined reference to `__outbc'
- pnpdump.o(.text+0x11ef): undefined reference to `__outb'
- pnpdump.o(.text+0x1374): undefined reference to `__outbc'
- pnpdump.o(.text+0x1388): undefined reference to `__outb'
-
- Chances are the -O2 compiler option is missing.
-
- 33..22.. II''vvee ggoott tthhee bbiinnaarryy ddiissttrriibbuuttiioonn aanndd tthhee bbiinnaarriieess wwoonn''tt rruunn..
-
- 33..22..11.. LLiinnuuxx
-
- If you get messages such as:
-
- bash: ./sbin/pnpdump: No such file or directory
-
- or
-
- bash: ./isapnp: No such file or directory.
-
- when attempting to run the precompiled binaries, then chances are you
- haven't got the required C libraries.
-
- To check this, change to the sbin directory and type
-
- ldd pnpdump
- ldd isapnp
-
- You should get something like
-
- libc.so.5 => /lib/libc.so.5
-
- for each one. If you get "not found" then you will have to recompile.
- Note that the precompiled binaries in my binary distributions are
- compiled for libc5. If you want binaries for glibc systems, Redhat 5.2
- on, Suse 6.0 on etc, you'll have to go elsewhere (probably to your
- distribution's web site).
-
- The best thing to do is to delete the binaries in the distribution and
- try to compile your own anyway.
-
- 33..22..22.. DDOOSS
-
- If you get a complaint along the lines of cannot find DPMI, then you
- need to get hold of a DPMI host software. See the FAQ on the DJGPP
- site <http:://www.delorie.com/djgpp> for details (follow the path
- through Running --- Distributing). This is most likely to occur on a
- pure DOS machine. Win95 for example includes a DPMI host.
-
- The free DPMI server (cwsdpmi) is normally part of the djgpp
- distribution. For example, my ISP mirrors it in the
- <ftp://ftp.demon.co.uk/pub/mirrors/coast/vendors/djgpp/v2misc/> and
- <ftp://ftp.demon.co.uk/pub/mirrors/simtelnet/gnu/djgpp/v2misc/>
- directories.
-
- 33..33.. PPrroobblleemmss ccoommppiilliinngg ffoorr 22..11..xx kkeerrnneellss
-
- The latest kernels (2.1.7x ish) have problems with the header files.
- If you are playing with these kernels, you really ought to know how to
- fix this yourself. I've been told that adding a -D__KERNEL__ to the
- Makefile fixes it.
-
- 33..44.. II''vvee uuppggrraaddeedd mmyy lliibbrraarryy//CC--ccoommppiilleerr aanndd nnooww hhaavvee pprroobblleemmss ccoomm--
- ppiilliinngg tthhee pprrooggrraammss..
-
- If you've change from libc5 to glibc, or want to use EGCS, you could
- look at http://huizen.dds.nl/~frodol/glibc/problems.html
- <http://huizen.dds.nl/~frodol/glibc/problems.html> for some help.
-
- See also the ``The program crashes with a "Segmentation fault"''
- section.
-
- 33..55.. CCaann iissaappnnppttoooollss bbee uusseedd wwiitthh ooppeerraattiinngg ssyysstteemmss ootthheerr tthhaann LLiinnuuxx..
-
- No, or at least not easily. Issues that require addressing include
-
- 1. Isapnptools needs to be able to get direct IO access privileges.
- (Not a problem with DOS, hence the DOS port). I suspect that this
- will require a device driver of some sort under windows NT.
-
- 2. Some mechanism is needed to start up the device driver after isapnp
- <isapnp.8.html> has run.
-
- 33..66.. WWhhaatt ddoo II ddoo iiff II tthhiinnkk II''vvee ffoouunndd aa bbuugg oorr ggoott ssoommee ootthheerr pprroobb--
- lleemm ??
-
- Check the web site to see if the bug has already been reported.
-
- Check the FAQ to see if the problem is operator error.
-
- Check all the READMEs and INSTALL file to see if the answer is there.
-
- If the program doesn't seem to obey the documentation, please look at
- the source to identify the cause of the discrepancy, and report the
- problem.
-
- If nothing shows in the above, please report the problem, including
- the following information as appropriate:
-
- +o Output of 'cat /proc/cpuinfo'
-
- +o Output of 'cat /proc/pci'
-
- +o Output of 'cat /proc/interrupts'
-
- +o Output of 'cat /proc/ioports'
-
- +o Output of 'cat /proc/devices'
-
- +o Output of 'cat /etc/isapnp.gone'
-
- +o Your configuration file (/etc/isapnp.conf), before and/or after
- editting.
-
- +o Output of 'cat /usr/include/kernel/autoconf.h' (or the autoconf.h
- for the kernel you're running).
-
- +o Output of 'lsmod' if you use kernel modules
-
- +o The command lines used to install the relevant device driver kernel
- modules, or configure the built in device driver (eg setserial).
-
- +o Output of 'dmesg'
-
- +o Output of 'gcc -v'
-
- +o Output of 'ldd prog' where prog is the program giving trouble.
-
- +o Inputs and Outputs of the program giving trouble:
-
- prog args.. > prog.stdout 2> prog.stderr
-
- +o The patch that cures the problem !
-
- 44.. GGeenneerraall -- RRuunnnniinngg
-
- 44..11.. WWhhiicchh kkeerrnneell ddoo II nneeeedd ??
-
- Any kernel should do. The real time stuff may not exist in older
- kernels (1.2.13 and before), but just compile without it.
-
- If you have new hardware, you may need a later kernel anyway.
-
- 44..22.. YYoouu mmuusstt bbee rroooott ttoo rruunniissaappnnpp <<isapnp.8.html> andpnpdump
- <pnpdump.8.html> because the program requires direct access to the IO
- ports. I get "Permission denied" when trying to run the programs.
-
- 44..33.. TThhee pprrooggrraamm ccrraasshheess wwiitthh aa ""SSeeggmmeennttaattiioonn ffaauulltt""
-
- If you compiled the program using gcc2.8.0 this is very likely due to
- a bug in the compiler's IO port handling.
-
- Recompile using gcc2.7.2.
-
- If you really must use gcc.2.8.x (like egcs) then you can try
- recompiling the KERNEL with the ioport.c from one of the later 2.1.xxx
- kernels, or 2.2.x kernels.
-
- 44..44.. WWhheerree ccaann II ggeett eexxaammppllee ccoonnffiigguurraattiioonn ffiilleess ??
-
- The output of pnpdump <pnpdump.8.html> should give you the examples
- you need for your hardware. If you run it with the -c (--config) flag,
- it should even show how to configure your hardware in the output. The
- output of pnpdump is supposed to be used as the input to isapnp
- <isapnp.8.html> after editing.
-
- See also README.modules <README.modules> and INSTALL <INSTALL>.
-
- 44..55.. HHooww ccaann II ffiinndd oouutt hhooww tthhee ccaarrdd iiss ccoonnffiigguurreedd ??
-
- Use the -d option with pnpdump <pnpdump.8.html>.
-
- The output dumps all the configuration registers for each device, you
- will have to interpret the results against the PnP spec, but it's
- mostly obvious.
-
- If you do this before running isapnp <isapnp.8.html> you can see the
- BIOS/power up defaults.
-
- 44..66.. IIssaappnnpp ffaaiillss wwiitthh eerrrroorr ""EErrrroorr ooccccuurrrreedd eexxeeccuuttiinngg rreeqquueesstt ''IISSOO--
- LLAATTEE'' oonn oorr aarroouunndd lliinnee 1133 ------ ffuurrtthheerr aaccttiioonn aabboorrtteedd""
-
- This means no boards were found.
-
- If you have just added a new card into an ISA bus slot, it may be
- conflicting with the readport address in your /etc/isapnp.conf file.
- You will need to check the resource assignments in your configuration
- file to make sure they don't clash with the new card.
-
- Try re-running pnpdump to see if it comes up with a different readport
- address, then use the new readport address in you configuration file.
- If the new card is also PnP, you may also need to copy the
- configuration instructions across too.
-
- See also ``Pnpdump reports "No boards found"''
-
- 44..77.. WWhhaatt iiss aa ggoooodd rreeaaddppoorrtt aaddddrreessss ttoo uussee ??
-
- A popular READPORT <isapnp.conf.5.html#READPORT> address seems to be
- 0x273 or 0x277. You shouldn't need to explicitly specify one though
- as pnpdump <pnpdump.8.html> can find one automatically.
-
- 44..88.. PPnnppdduummpp ddooeessnn''tt ffiinndd aallll tthhee PPnnPP bbooaarrddss iinn tthhee ssyysstteemm..
-
- Are you sure the missing board is configured as PnP ? Many PnP boards
- come with a DOS utility which allows them to be configured as non PnP,
- or has jumpers which can be used instead of PnP.
-
- See also ``Pnpdump reports "No boards found"''
-
- 44..99.. PPnnppdduummpp ccaannnnoott sseeee tthhee bbooaarrddss aafftteerr uussiinngg tthhee --rr ooppttiioonn..
-
- Use the -i (--ignorecsum) flag to pnpdump <pnpdump.8.html>. This flag
- was added in version 1.18 of isapnptools.
-
- See also ``Pnpdump reports "No boards found"''
-
- 44..1100.. PPnnppdduummpp rreeppoorrttss ""NNoo bbooaarrddss ffoouunndd""
-
- This means that you have no ISA PnP boards in your system. That's easy
- then, you don't need isapnptools...
-
- If, in fact, you think you should have some ISA PnP boards, there are
- a few possibilities:
-
- +o The board is broken --- unlikely.
-
- +o There is a conflict in the system resulting in no suitable READPORT
- <isapnp.conf.5.html#READPORT> address being available.
-
- Although this is unlikely, a faulty PnP device can give a fault
- which causes all READPORT addresses to fail. To see if this is the
- case, use the -i (--ignorecsum) flag to pnpdump <pnpdump.8.html>.
- This flag was added in version 1.18 of isapnptools.
-
- +o You specified two arguments to pnpdump <pnpdump.8.html>, and the
- READPORT <isapnp.conf.5.html#READPORT> address didn't match the
- value used by the earlier PnP isolator.
-
- If you did this, and you used two arguments to prevent pnpdump
- <pnpdump.8.html> from resetting some device's configuration,
- upgrade to Version 1.13 of isapnptools, which will do it's own
- isolation without resetting any device's configuration, even with
- less than two arguments.
-
- Alternatively, if you are running the DOS version under windows 95,
- see the <README.DOS> file in the distribution.
-
- If you don't care if the boards configuration is reset, just run
- pnpdump <pnpdump.8.html> with fewer arguments.
-
- +o The board's PnP capability is configurable. This feature is
- provided by some boards to support legacy systems. It allows a
- board to be set to fixed address/interrupt settings, or it can be
- set to PnP mode allowing standard software reconfiguration.
-
- If the board has been configured to a fixed setting, pnpdump
- <pnpdump.8.html> won't find it. The thing to do is to find the (DOS
- based probably) configuration software and run it to check the
- board settings.
-
- If the board is this type, there are two courses of action:
-
- 1. Use the configuration software to set the board to a suitable
- set of addresses and interrupts. This will allow the use of
- built-in kernel drivers as the board will be present at power
- up.
-
- 2. Use the configuration software to set the board to PnP mode,
- then use isapnptools to configure the board after the kernel is
- running.
-
- +o The board disappears after being configured (by the BIOS). Try the
- --reset option to pnpdump <pnpdump.8.html>.
-
- +o You have a new computer, like my recent motherboard upgrade, and
- the BIOS lists the card during bootup, but isapnp <isapnp.8.html>
- can't see it.
-
- I've got this too, and it appears that some sort of conflict is
- occurring during the isolation sequence for the first (of two)
- boards, causing the checksum to fail for every readport address
- tried. I've added the -i (--ignorecsum) flag to pnpdump
- <pnpdump.8.html> in version 1.18 of isapnptools to allow the
- isolation process to complete in the presence of this fault.
-
- The fault I've seen looks like there is some sort of bus contention
- going on, with lower priority devices not dropping out like they
- should during the isolation sequence: this results in a checksum
- error on every readport address tried, because the first byte read
- on the isolation sequence looks like the logical OR of each devices
- first byte.
-
- +o Another thing to try is to play with the BIOS PnP settings. I've
- had a report that setting the 'PnP aware OS' setting to YES made
- things work (this was for an ASUS TX-97 E motherboard). In my case,
- I've found that I need to set it to NO to make things work. In fact
- it's even worse than that: if I set any interrupt to non PnP,
- except IRQ10 which has my (non PnP) network card on, nothing works
- even then. And when it is working, if I ever try a full reset,
- nothing works from then on until I reboot. (My motherboard chipset
- is ACER LABS ALADDIN IV, reported by cat /proc/pci, with AMI BIOS).
-
- 44..1111.. WWhhaatt ddooeess ""EErrrroorr ooccccuurrrreedd eexxeeccuuttiinngg rreeqquueesstt ''LLDD 22'' oonn oorr aarroouunndd
- lliinnee......"" mmeeaann ??
-
- This means that attempting to read back the logical device number
- failed. The specification is rather unclear on whether this is
- guaranteed to work, and in any event, it doesn't appear to work with
- some devices.
-
- There are two solutions:
-
- 1. Get isapnp <isapnp.8.html> version 1.10 or later which supports
- VERIFYLD <isapnp.conf.5.html#VERIFYLD>.
-
- 2. Use direct register access to select the logical device. So instead
- of configuring each logical device as normal:
-
- (CONFIGURE CTL009c/481377 (LD 0
- ... LD 0 settings
- (ACT Y))
- (LD 1
- ... LD 1 settings
- (ACT Y))
- (LD 2
- ... LD 2 settings
- (ACT Y))
- (LD 3
- ... LD 3 settings
- (ACT Y))
- )
-
- pretend they are all logical device 0, and then change the logical
- device by directly POKEing <isapnp.conf.5.html#POKE> the logical
- device register (REGister 7).
-
- (CONFIGURE CTL009c/481377 (LD 0
- ... LD 0 settings
- (ACT Y)
- (REG 7 (POKE 1) (PEEK)) # Set logical device 1, but no check
- ... LD 1 settings
- (ACT Y)
- (REG 7 (POKE 2) (PEEK)) # Set logical device 2, but no check
- ... LD 2 settings
- (ACT Y)
- (REG 7 (POKE 3) (PEEK)) # Set logical device 3, but no check
- ... LD 3 settings
- (ACT Y)
- ))
-
- 44..1122.. WWhhaatt ddooeess ""EEnndd ttaagg cchheecckkssuumm 00xxbb88 ((BBAADD))"" mmeeaann ((iinn tthhee ppnnppdduummpp
- oouuttppuutt)) ??
-
- It means that the resource data read from the board was corrupt, which
- in turn means that the resource data dump may be wrong. If you know
- what the card resources really are, you can still configure it with
- isapnp.
-
- The resource data is often stored in EEPROM, and can be written to via
- the appropriate accesses. It can be corrupted by a faulty windows 95
- driver, or driver crash for example.
-
- 44..1133.. WWhhaatt ddooeess ""IIOO rraannggee cchheecckk aatttteemmpptteedd wwhhiillee ddeevviiccee aaccttiivvaatteedd""
- mmeeaann ((ffrroomm iissaappnnpp)) ??
-
- This means you have attempted to CHECK <isapnp.conf.5.html#CHECK> the
- device resource allocation for conflicts using the IO range feature,
- but the device has already been activated. Either remove the check, or
- put (ACT N) before the IO allocation.
-
- 44..1144.. WWhhaatt ddooeess ""IIOO rraannggee cchheecckk ffaaiilleedd ffoorr nn bbyytteess ooff IIOO aatt aaddddrr""
- mmeeaann ((ffrroomm iissaappnnpp)) ??
-
- This means you have attempted to CHECK <isapnp.conf.5.html#CHECK> the
- device resource allocation for conflicts using the IO range feature,
- but the check failed. Either: the device doesn't support IO range
- checks (which you can find out from the pnpdump output), in which case
- remove the check; or the device SIZE <isapnp.conf.5.html#SIZE> is too
- large, in which case correct it; or the test has failed due to a
- resource conflict, in which case change the IO BASE
- <isapnp.conf.5.html#BASE> address.
-
- 44..1155.. II tthhiinnkk II''vvee ccoonnffiigguurreedd tthhee bbooaarrdd ccoorrrreeccttllyy,, bbuutt tthhee ddrriivveerr
- ssttiillll ccaann''tt ffiinndd iitt..
-
- The configuration file must end in WAITFORKEY
- <isapnp.conf.5.html#WAITFORKEY>.
-
- pnpdump <pnpdump.8.html> from isapnptools 1.9 neglected to put this at
- the end of the generated configuration script.
-
- 44..1166.. WWhhaatt ddooeess ""//pprroocc//bbuuss//ppccii//ddeevviicceess nnoott ffoouunndd,, ssoo PPCCII rreessoouurrccee
- ccoonnfflliicctt nnoott cchheecckkeedd"" mmeeaann ??
-
- This message occurs if running kernels before the later 2.1.xxx
- series. /proc/bus/pci/devices appears in later kernels to allow the
- PCI device information to be read. If you have disabled the proc
- filesystem, or are running an older kernel, then the isapnptools
- programs cannot check resource allocations against those assigned to
- PCI devices.
-
- This is unlikely to be a problem, because the resources are likely to
- be shown used in /proc/interrupts and /proc/ioports etc if a driver is
- using them. If this isn't good enough, and you still get a problem
- with resource clashes, just add the PCI resources used to the
- /etc/isapnp.gone file.
-
- 44..1177.. IIss tthheerree aa ggrraapphhiiccaall iinntteerrffaaccee aavvaaiillaabbllee ??
-
- Yes. See gpnpconf-0.6.0.tar.gz
- <http://james.kalifornia.com/~dpates/gpnpconf-0.6.0.tar.gz>. Written
- by Derrik Pates, it uses Perl/Gtk. This was November 1998, it may have
- moved or been updated since then.
-
- 55.. GGeenneerraall -- KKeerrnneell//DDrriivveerr iissssuueess
-
- 55..11.. DDoo II nneeeedd ttoo ccoonnffiigguurree CCOONNFFIIGG__PPNNPP iinn tthhee kkeerrnneell ??
-
- This applies to 2.1.xxx and later kernels. They now include a
- configuration option CONFIG_PNP. This is intended to enable the kernel
- to configure some PnP devices, but there is little or no support in
- the kernel (2.1.131).
-
- If you're using isapnptools, it would probably be better to set this
- value to N, to prevent bad interactions when it does do something.
-
- 55..22.. II''vvee ccoonnffiigguurreedd mmyy ...... uussiinngg iissaappnnppttoooollss,, bbuutt tthhee kkeerrnneell ddooeessnn''tt
- rreeccooggnniissee iitt..
-
- There are lots of possibilities for this, just remember:
-
- 1. isapnp <isapnp.8.html> must be run before the driver initialises,
- unless a separate program is available to initialise drivers later
- (eg. _s_e_t_s_e_r_i_a_l). (See the <README.modules> file provided with the
- distribution).
-
- 2. The settings for the board specified to isapnp <isapnp.8.html> must
- match those of the driver for the board.
-
- 3. You must load a driver for the card. It is not sufficient to have
- an entry in dev/.
-
- 55..33.. II ggeett tthhee eerrrroorr mmeessssaaggee ""...... mmoodduullee ssuuppppoorrtt aallrreeaaddyy llooaaddeedd"" wwhheenn
- ttrryyiinngg ttoo llooaadd tthhee ...... mmoodduullee..
-
- This means that the driver module has already been loaded or is built
- into the kernel. Try typing "cat proc/devices/" to see what devices
- are already loaded before insmodding the driver.
-
- This could also be due to not rebooting after rebuilding the kernel
- with module support for the required driver.
-
- 55..44.. II''mm hhaavviinngg ttrroouubbllee ggeettttiinngg iinntteerrrruuppttss ttoo wwoorrkk..
-
- A bug has been discovered in isapnp for Version 1.11 of isapnptools,
- relating to the setting of interrupt edges. This is unlikely to be a
- problem for most hardware because the hardware doesn't allow anything
- other that +ve edge interrupts, however, as Kevin Bowman has pointed
- out, some hardware, such as that using the Fujitsu MB86701 does allow
- the interrupt line to be programmed. In this case, try upgrading to
- Version 1.13 or later.
-
- 55..55.. II''vvee ccoonnffiigguurreedd tthhee ccaarrdd,, bbuutt //pprroocc//iinntteerrrruuppttss ssttiillll sshhoowwss tthhee
- iinntteerrrruupptt aass uunnuusseedd..
-
- /proc/interupts still lists the IRQ I am choosing as unused and the
- same for the IO ports. Does this mean the installation has failed ?
-
- Not necessarily. Until you load a device driver that uses them, the
- resources remain unused. You can use pnpdump -d to check the
- programming if you have a version that supports the --dumpregs option.
-
- 55..66.. TThhee ddrriivveerr ffoorr mmyy ccaarrdd ccaannnnoott bbee bbuuiilltt aass aa mmoodduullee..
-
- If the driver you want to use can only be built into the kernel, then
- you may want to consider using the DOS version of isapnptools, then
- booting Linux via loadlin. See <README.DOS> in the distribution for
- details.
-
- 55..77.. AAss ssoooonn aass II rruunn iissaappnnpp,, mmyy mmaacchhiinnee lloocckkss uupp..
-
- You have SCSI disks on a PnP adapter card - right ? In this case you
- must be doing a full reset of the ISA PnP hardware, which is making
- the disks disappear. Alternatively, you may have a PnP network card
- and a built-in kernel driver.
- Make sure your configuration file doesn't contain (ISOLATE
- <isapnp.conf.5.html#ISOLATE> PRESERVE).
-
- For the network card case, you can still do a full ISA PnP reset if
- you remove the network card driver from the kernel and use a module
- instead (and load it after running isapnp).
-
- 55..88.. HHooww ccaann II ssttoopp iissaappnnpp aanndd ppnnppdduummpp uussiinngg cceerrttaaiinn aaddddrreesssseess ffoorr
- tthhee RREEAADDPPOORRTT ..
-
- Get isapnptools 1.16 or later, and put the port addresses you want to
- avoid in the /etc/isapnp.gone file. This assumes you want to try lots
- of addresses, but skip certain ones. If you just want to use a
- specific address, specify the address as the last argument.
-
- 66.. UUppggrraaddiinngg
-
- 66..11.. II''vvee uuppggrraaddeedd iissaappnnppttoooollss ffrroomm mmyy ffaavvoouurriittee ddiissttrriibbuuttiioonn aanndd iitt
- hhaass wwiippeedd oouutt mmyy iissaappnnpp..ccoonnff ffiillee..
-
- This has been reported as a side effect of upgrading Slackware 3.4 to
- 3.5. I'm sorry, but it must be a bug in the distribution, as upgrading
- from the isapnptools source will not do this. Please notify your
- distribution supplier as they should not stomp on user generated files
- during a package update.
-
- If you get the latest isapnptools, it should be possible to generate a
- good isapnp.conf file without editting, though you may need cleverer
- boot up scripts to discover the resource allocations.
-
- 66..22.. WWhhaatt sshhoouulldd II ddoo ttoo uuppggrraaddee iissaappnnppttoooollss..
-
- If you are updating using a non source version of isapnptools, I
- suggest you make a copy of the /etc/isapnp.conf and /etc/isapnp.gone
- files if present, just in case they get overwritten.
-
- You may want to regenerate the /etc/isapnp.conf file to take advantage
- of new keywords which may have been introduced. In this case run
- pnpdump -c and capture the output, then edit it in comparison to the
- previous /etc/isapnp.conf file to make the hardware configuration the
- same.
-
- 77.. RReessoouurrcceess
-
- It is very important that the resource settings you specify in the
- isapnp.conf file avoid conflict with any other devices, Plug and Play
- or otherwise. If you fail to do this, the system may fail to work
- properly, crash, or lock up.
-
- 77..11.. DDeetteerrmmiinniinngg rreessoouurrccee uussaaggee ((lliinnuuxx))..
-
- The easiest way to avoid conflict is to make a list of all the devices
- in your system and the resources they use.
-
- To help in this task, try booting the system with no PnP devices
- configured, then examine the resources the kernel is using via the
- proc filesystem (which must be mounted, obviously).
-
- You can also follow these instructions after configuring the PnP
- hardware and loading the appropriate driver modules to check that the
- drivers have been configured properly.
-
- To check the proc file system is mounted, type mount at the shell
- prompt, and somewhere in the response should be a line similar to the
- one in the example below:
-
- $ mount
- ...
- /proc on /proc type proc (rw)
- ...
- $
-
- From now on, I shall assume you have the proc filesystem is mounted on
- proc/. In addition, if you use driver modules you should ensure that
- they are all loaded so that they grab the resources they require. You
- may want to print the results obtained below:
-
- To see what IIOO aaddddrreesssseess are used, type "catproc/ioports/". This will
- provide a list of IO ports and the drivers that use them.
-
- To see what iinntteerrrruuppttss are used, type "catproc/interrupts/". This must
- be done with all your devices in use, (for example, mount a floppy
- disk so that the floppy disk interrupt is in use, and open all the
- serial ports, for example using the command "(cat < dev/ttyS1) &/").
-
- To see what DDMMAA cchhaannnneellss are used, type "catproc/dma/".
-
- Note also that some device drivers do not allocate resources unless a
- process has ooppeenneedd tthhee ddeevviiccee. This is normally the case for the
- floppy driver and serial drivers for example. This means that the
- above commands will probably not locate all the resources used by all
- the hardware, so you may still have to change some resource
- allocations to get things to work.
-
- Another useful command to try is
-
- dmesg | grep -i irq
-
- which will trawl through the kernel bootup messages for lines
- containing irq. This finds resources used by kernel drivers.
-
- These commands will give a good idea of which resources are in use,
- but they may miss something if the device doesn't have a driver for
- example, or the BIOS has allocated the resources for some other
- purpose. So it is a good idea to check the BIOS settings when
- rebooting - particularly look for interrupt lines allocated to PCI
- devices, you may want to deallocate some of these if your PnP card
- needs a interrupt.
-
- Another possibility is to use the --dumpregs command to pnpdump
- <pnpdump.8.html> to see what the BIOS has allocated.
-
- For further information on standard motherboard resource settings and
- interrupt assignments, see the pc-hardware-faq (posted regularly to
- the comp.sys.ibm.pc.hardware.* news groups).
-
- 77..22.. II''vvee ggoott aa ......,, wwhhiicchh rruunnss ffiinnee uunnddeerr WWiinn9955,, hhooww ccaann II ffiinndd oouutt
- tthhee ppoorrtt sseettttiinnggss ??
-
- Using the PEEK <isapnp.conf.5.html#PEEK> command in an isapnp
- <isapnp.8.html> script allows the existing configuration register
- settings to be examined. Assuming that the settings don't change
- between booting Win95 and booting Linux, this script can be used to
- find the settings.
-
- IIff yyoouu bboooott ssttrraaiigghhtt iinnttoo LLiinnuuxx,, ssoommee ddeevviicceess mmaayy nnoott bbee ccoonnffiigguurreedd.
-
- To find out the card settings, and then to generate a script to
- reproduce them, follow these instructions:
-
- 1. To find out what configuration registers the card has, you must
- first run pnpdump <pnpdump.8.html> with the two optional arguments.
- With pnpdump <pnpdump.8.html> from release 1.12 or later you don't
- need the additional two arguments, though a single argument may be
- useful to set the READPORT <isapnp.conf.5.html#READPORT> address.
- See <README.DOS> for instructions on how to obtain the READPORT
- address that Win95 uses.
-
- 2. Then examine the output to identify the number of logical devices,
- and the resources used by each one. For this it is best to pipe the
- pnpdump <pnpdump.8.html> output through grep to remove most of the
- comments thus:
-
- pnpdump 2 0x3bb | grep -v '# [ A-Z]' | grep -v '^#$' | grep -v '^$' > pnpdump.res
-
- On my system I have two cards, and pnpdump.res looks like this:
-
- #
- # (DEBUG)
- (READPORT 0x03bb)
- (CSN 2)
- (IDENTIFY *)
- (CONFIGURE EDI0119/236861364 (LD 0
- # (IO 0 (BASE 0x0240))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (MEM 0 (BASE 0x0c0000) (MODE bu) (UPPER 0x0c4000))
- # (MEM 0 (BASE 0x0c0000) (MODE br) (UPPER 0x004000))
- # (ACT Y)
- ))
- (CONFIGURE DFX0000/1493 (LD 0
- # (IO 0 (BASE 0x02f8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (IO 0 (BASE 0x02f8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (IO 0 (BASE 0x02f8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (IO 0 (BASE 0x03e8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (IO 0 (BASE 0x03e8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (IO 0 (BASE 0x02e8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (IO 0 (BASE 0x02e8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (IO 0 (BASE 0x03f8))
- # (INT 0 (IRQ 4 (MODE +E)))
- # (IO 0 (BASE 0x03f8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (IO 0 (BASE 0x03f8))
- # (INT 0 (IRQ 3 (MODE +E)))
- # (ACT Y)
- ))
- (CONFIGURE DFX0000/1493 (LD 1
- # (DMA 0 (CHANNEL 3))
- # (DMA 0 (CHANNEL 1))
- # (DMA 0 (CHANNEL 4))
- # (ACT Y)
- ))
-
- 3. Edit this to remove the duplicates, remove the (ACT
- <isapnp.conf.5.html#ACT>) commands, uncomment each resource and
- change the resource assignment commands to (PEEK
- <isapnp.conf.5.html#PEEK>), thus:
-
- (READPORT 0x03bb)
- (CSN 2)
- (IDENTIFY *)
- (CONFIGURE EDI0119/236861364 (LD 0
- (IO 0 (PEEK))
- (INT 0 (PEEK))
- (MEM 0 (PEEK))
- ))
- (CONFIGURE DFX0000/1493 (LD 0
- (IO 0 (PEEK))
- (INT 0 (PEEK))
- ))
- (CONFIGURE DFX0000/1493 (LD 1
- (DMA 0 (PEEK))
- ))
-
- This shows the ethernet card (EDI0119/236861364) has a single logical
- device which uses one each IO <isapnp.conf.5.html#IO>, INT
- <isapnp.conf.5.html#INT>, and MEM <isapnp.conf.5.html#MEM> resource,
- while the PnP modem (DFX0000/1493) has two logical devices:
-
- a. (LD <isapnp.conf.5.html#LD> 0), which uses an IO
- <isapnp.conf.5.html#IO> resource, and an INT
- <isapnp.conf.5.html#INT> resource,
-
- b. (LD <isapnp.conf.5.html#LD> 1), which uses a single 8 bit DMA
- <isapnp.conf.5.html#DMA> channel.
-
- 4. Run isapnp <isapnp.8.html> on this script, and the following output
- is obtained:
-
- Board 1 has Identity 13 0e 1e 37 b4 19 01 89 14: EDI0119 Serial No 236861364 [checksum 13]
- Board 2 has Identity 6e 00 00 05 d5 00 00 d8 10: DFX0000 Serial No 1493 [checksum 6e]
- Peek(EDI0119/236861364)[0][0x60](IO 0) is 0x0340, (3,64)
- Peek(EDI0119/236861364)[0][0x70](INT 0) is 0x0A02, (10,2)
- Peek(EDI0119/236861364)[0][0x40](MEM 0) is 0x0000000000000000, (0,0,0,0,0,0,0,0)
- Peek(DFX0000/1493)[0][0x60](IO 0) is 0x03E8, (3,232)
- Peek(DFX0000/1493)[0][0x70](INT 0) is 0x0C02, (12,2)
- Peek(DFX0000/1493)[1][0x74](DMA 0) is 0x04, (4)
-
- From this you can see that the modem card is configured at IO
- <isapnp.conf.5.html#IO> address 0x3E8, and uses interrupt 12. The 2
- in the bottom half of the INT <isapnp.conf.5.html#INT> register means
- +ve edge trigger and is unlikely to ever be different. The DMA
- <isapnp.conf.5.html#DMA> channel is set to 4, which means DMA not
- used.
-
- Also you can see that the ethernet card is configured at IO
- <isapnp.conf.5.html#IO> address 0x340, and uses interrupt 10. The MEM
- <isapnp.conf.5.html#MEM> resource is all 0, which means it is not
- used.
-
- 5. So to program these cards like this, use the script:
-
- (READPORT 0x3bb)
- (CSN 2)
- (IDENTIFY *)
- (CONFIGURE EDI0119/236861364
- (LD 0
- (IO 0 (BASE 0x0340))
- (INT 0 (IRQ 10 (MODE +E)))
- (ACT Y)))
- (CONFIGURE DFX0000/1493
- (LD 0
- (IO 0 (BASE 0x3e8))
- (INT 0 (IRQ 12 (MODE +E)))
- (ACT Y)))
- (WAITFORKEY)
-
- 77..33.. EExxaammiinniinngg WWiinn9955 rreessoouurrccee sseettttiinnggss..
-
- Alternatively, for the device of interest:
-
- 1. Right click on My Computer
-
- 2. Click on Properties->Device Manager
-
- 3. Select the device of interest, then click on Properties->Resources.
-
- Make a note of the resources used.
-
- 77..44.. TThhee wwiinnddoowwss CCTTPPNNPP..CCFFGG ffiillee..
-
- Some machines may have a CTPNP.CFG file containing PnP resource
- information. Have a look. If you've got one, it may be best to use the
- READPORT address in there.
-
- 77..55.. HHooww ccaann II pprreevveenntt ppnnppdduummpp aallllooccaattiinngg cceerrttaaiinn rreessoouurrcceess wwiitthh tthhee
- --cc ffllaagg..
-
- Get isapnptools 1.16 or later, and put the resources you want to avoid
- in the /etc/isapnp.gone file.
-
- 77..66.. CCoommmmoonn pprroobblleemmss
-
- The usual source of conflicts in the sound card with something else,
- tyically the network card. This is because network cards like to be at
- addresses 0x300,0x320,0x340,etc, and sound cards use IO addresses all
- over the place, including (in my system) 0x0220-022f, 0x0330-0333,
- 0x0388-038b.
-
- If you have a system with a network card, and then add a sound card
- later, it is quite likely that the network card is using addresses
- 0x0320-033f which will be clobbered by the sound card. The solution is
- to move the network card, and in my system I have it at 0x0340-035f.
-
- 77..77.. WWhhaatt ddooeess iissaappnnpp mmeeaann bbyy ""FFaattaall -- rreessoouurrccee ccoonnfflliicctt aallllooccaattiinngg
- DDMMAA11""..
-
- This means you are trying to allocate DMA1 to a PnP device, but the
- DMA resource has already been allocated to another device.
-
- Similar messages can occur for IO ports or interrupts.
-
- You need to find out what other device is using the resource, in case
- it turns out that the device you are trying to configure has already
- been configured by the BIOS, and a kernel driver has found it and is
- using it.
-
- To find out what is using it, look in /proc/dma, /proc/ioports,
- /proc/interrupts as appropriate, or /etc/isapnp.gone.
-
- If it is in use by another (different) device, then you must change
- your resource allocation.
-
- If is in use by the device you are trying to configure, then you
- probably don't need to configure the device using isapnptools. Simply
- make sure the kernel driver settings match those allocated by the
- BIOS.
-
- 77..88.. DDoo II hhaavvee ttoo ccoonnffiigguurree aallll tthhee ddeevviicceess..
-
- No. More modern BIOSes seem to configure almost all devices, so you
- don't need to run isapnptools at all. If a device is not configured
- how you want, you can just reconfigure that one. Note that if you do
- reconfigure a device, if must not have a driver running on it. This
- means the driver must not be built into the kernel, and any driver
- modules for the device must be unloaded.
-
- 88.. AAddvvaanncceedd uussaaggee..
-
- 88..11.. CCoommmmoonn ccoonnffiigguurraattiioonnss oonn mmuullttiippllee mmaacchhiinneess,, VVeerrssiioonn 11..1111 aanndd
- eeaarrlliieerr..
-
- It is not possible to use the same configuration file on multiple
- machines with these earlier versions of isapnptools.
-
- However, it is possible to concoct something with a few scripts etc.
- The key is to split off each board's configuration into it's own file,
- then use an empty run of isapnp with just an IDENTIFY
- <isapnp.conf.5.html#IDENTIFY> to discover which board configurations
- need to be used. Here is what I said to someone with this problem:
-
- I suggest you run isapnp twice (or more!):
-
- 1. The first time, do a probe to find out which cards are present, ie,
- remove all the (CONFIGURE <isapnp.conf.5.html#CONFIGURE>...)
- sections. Use the output of the (IDENTIFY
- <isapnp.conf.5.html#IDENTIFY>) command in the isapnp script to
- choose the next script.
-
- 2. Run the script selected by the above. Note that the second isapnp
- scripts don't need to run (ISOLATE <isapnp.conf.5.html#ISOLATE>),
- just do a (CSN <isapnp.conf.5.html#CSN> x)(IDENTIFY
- <isapnp.conf.5.html#IDENTIFY>) instead.
-
- If you do this, it may be advisable to fix the READPORT
- <isapnp.conf.5.html#READPORT> in all four scripts.
-
- Using this method, you could have an individual script for each board,
- and if you named them by the compacted ident, you could get a list of
- files to configure thus:
-
- BOARDS=`isapnp probe.conf | grep '^Board' | cut -c22,23,25,26,28,29,31,32,34,35,37,38,40,41,43,44,46,47`
- for board in $BOARDS
- do
- isapnp $board.conf
- done
-
- where probe.conf is little more than
-
- (READPORT 0x3bb) # or whatever
- (ISOLATE)
- (IDENTIFY *)
- (WAITFORKEY)
-
- Note that if you were to use this method with isapnptools version 1.12
- or later, you could skip the grep and cut by using an appropriate
- IDENTIFYFORMAT <isapnp.conf.5.html#IDENTIFYFORMAT> command.
-
- And each of the board scripts fit the following skeleton:
-
- (READPORT 0x3bb) # or whatever
- (CSN 10) # or whatever
- (IDENTIFY *)
- (CONFIGURE ....)
- (WAITFORKEY)
-
- 88..22.. CCoommmmoonn ccoonnffiigguurraattiioonnss oonn mmuullttiippllee mmaacchhiinneess,, VVeerrssiioonn 11..1122 aanndd
- llaatteerr..
-
- With version 1.12 and later, CONFIGURE <isapnp.conf.5.html#CONFIGURE>
- blocks for boards not present will be skipped, so you can just have a
- single file containing the configurations for all boards in all
- systems.
-
- If you have machines with the same or similar setup of PnP cards, then
- this can be further optimised by having a single configuration for
- each type of card, using #1,#2,etc instead of the real serial numbers.
- Any systems with a non-standard setup could be overridden by a later
- CONFIGURE <isapnp.conf.5.html#CONFIGURE> specifying the card's full
- serial number.
-
- 88..33.. SSeennddiinngg aa RREESSEETT CCSSNN ccoommmmaanndd..
-
- Is there a way to issue a "Reset CSN Command", as described
- in Section 4.3 (p15) of the "Plug and Play ISA Specification
- 1.0a" using isapnptools?
-
- Sure, just poke the register using the REG <isapnp.conf.5.html#REG>
- command: after selecting a device and logical device (it doesn't
- matter which !) do
-
- (REG 2 (POKE 4))
-
- See section A.1 on page 51 also.
-
- This might be a good use for CSN <isapnp.conf.5.html#CSN>, as in
-
- (CSN 1 (LD 0 (REG 2 (POKE 4))))
-
- You may have to reconfigure the cards again afterwards if you want to
- fiddle with the PnP registers.
-
- 88..44.. DDuummppiinngg tthhee bbooaarrddss ccoonnffiigguurraattiioonn rreeggiisstteerrss..
-
- For isapnptools up to 1.15 you can modify the Makefile to uncomment
- the line
-
- PNPDUMPFLAGS += -DDUMPREGS
-
- this will cause pnpdump will dump all the standard configuration
- registers for each board.
-
- For isapnptools 1.16 and later, just give the option --dumpregs to
- pnpdump to get this dump.
-
- Note that this dump is dumping the physical registers, and will thus
- show the settings that have been put in there by the BIOS, or some
- cards will put a default setting in. Unused registers read back as 0.
-
- But for example, the missing two IO resources on an AWE32 have been
- reported to show up this way.
-
- It is also handy to check that isapnp <isapnp.8.html> has done the
- right thing.
-
- 99.. SSoouunnddccaarrddss..
-
- These seem to be the cause of most problems. Just remember that for a
- card to work, the card must be accessible to the kernel (that's what
- isapnp <isapnp.8.html> is for) aanndd it must have the correct driver aanndd
- it mustn't conflict with any other devices.
-
- If you suspect driver problems etc, you may wish to join the sound
- mailing list at linux-sound@vger.rutgers.edu.
-
- The later 2.1 kernels have a new sound driver, see the documentation
- in the /usr/src/linux/Documentation/sound directory.
-
- 99..11.. II''vvee ggoott aann AAWWEE3322//AAWWEE6644,, bbuutt LLiinnuuxx ddooeessnn''tt rreeccooggnniissee iitt..
-
- [According to Stefan Markgraf, the AWE64 suffers the same problem
- described below, where the two ports at 0xA20 and 0xE20 are not
- mentioned in the resource dump.]
-
- I've had some great feedback from agriffin@cpcug.org on this: (and a
- couple of corrections from Takashi Iwai <http://bahamut.mm.t.u-
- tokyo.ac.jp/~iwai/>)
-
- I have been able to get my SoundBlaster AWE 32 pnp configured and with
- drivers from Takashi Iwai, I now get some of the best sounds ever.
- (At least on any of the machines here.)
-
- I have included both the original output from pnpdump <pnpdump.8.html>
- and the conf that I use to get things working. NNoottee that the dump
- does not detect the I/O ports at 0xA20 and 0xE20. The manual that
- came with the card lists these ports and a note in one of the
- newsgroups show that all three of the AWE I/O ports need to be
- configured.
-
- Before adding the two I/O ports, the isapnp <isapnp.8.html>
- /etc/<pnpdump created file editted to activate the card> does not
- report anything unusual, but when I modprobe -a sound, syslog contains
- two lines:
-
- AWE32 not found
- AWE32: not detected
-
- and the output from cat /dev/sndstst in this case is:
-
- Sound Driver:3.5.4-960630 (Tue Jan 28 21:37:47 EST 1997 root,
- Linux palis 2.1.23 #1 Tue Jan 28 19:29:03 EST 1997 i586)
- Kernel: Linux palis 2.0.28 #3 Tue Jan 28 21:38:48 EST 1997 i586
- Config options: a80002
-
- Installed drivers:
- Type 1: OPL-2/OPL-3 FM
- Type 2: Sound Blaster
- Type 7: SB MPU-401
-
- Card config:
- Sound Blaster at 0x220 irq 5 drq 1,5
- SB MPU-401 at 0x330 irq 5 drq 0
- OPL-2/OPL-3 FM at 0x388 drq 0
-
- Audio devices:
- 0: Sound Blaster 16 (4.13)
-
- Synth devices:
- 0: Yamaha OPL-3
-
- Midi devices:
- 0: Sound Blaster 16
-
- Timers:
- 0: System clock
-
- Mixers:
- 0: Sound Blaster
-
- Now, when the two I/O ports (0xA20 and 0XE20) are included in the
- isapnp.conf, syslog has:
-
- AWE32 Sound Driver v0.3.2 (DRAM 2048K)
-
- and the output from /dev/sndstat shows:
-
- Sound Driver:3.5.4-960630 (Tue Jan 28 21:37:47 EST 1997 root,
- Linux palis 2.1.23 #1 Tue Jan 28 19:29:03 EST 1997 i586)
- Kernel: Linux palis 2.0.28 #3 Tue Jan 28 21:38:48 EST 1997 i586
- Config options: a80002
-
- Installed drivers:
- Type 1: OPL-2/OPL-3 FM
- Type 2: Sound Blaster
- Type 7: SB MPU-401
-
- Card config:
- Sound Blaster at 0x220 irq 5 drq 1,5
- SB MPU-401 at 0x330 irq 5 drq 0
- OPL-2/OPL-3 FM at 0x388 drq 0
-
- Audio devices:
- 0: Sound Blaster 16 (4.13)
-
- Synth devices:
- 0: Yamaha OPL-3
- 1: AWE32 Driver v0.3.2 (DRAM 2048k)
-
- Midi devices:
- 0: Sound Blaster 16
-
- Timers:
- 0: System clock
-
- Mixers:
- 0: Sound Blaster
-
- 99..11..11.. TThhee oouuttppuutt ffrroomm ppnnppdduummpp ((bbeeffoorree ccoonnffiigguurraattiioonn))..
-
- # This is free software, see the sources for details.
- # This software has NO WARRANTY, use at your OWN RISK
- #
- # For details of this file format, see isapnp.conf(5)
- #
- # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
- #
- # Trying port address 0203
- # Board 1 has serial identifier 0d 00 00 d5 88 43 00 8c 0e
-
- # (DEBUG)
- (READPORT 0x0203)
- (ISOLATE)
- (IDENTIFY *)
-
- # Card 1: (serial identifier 0d 00 00 d5 88 43 00 8c 0e)
- # CTL0043 Serial No 54664 [checksum 0d]
- # Version 1.0, Vendor version 1.0
- # ANSI string -->Creative SB AWE32 PnP<--
- #
- # Logical device id CTL0031
- #
- # Edit the entries below to uncomment out the configuration required.
- # Note that only the first value of any range is given, this may be changed if required
- # Don't forget to uncomment the activate (ACT Y) when happy
-
- (CONFIGURE CTL0043/54664 (LD 0
- # ANSI string -->Audio<--
-
- # Multiple choice time, choose one only !
-
- # Start dependent functions: priority preferred
- # IRQ 5.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 5 (MODE +E)))
- # First DMA channel 1.
- # 8 bit DMA only
- # Logical device is not a bus master
- # DMA may execute in count by byte mode
- # DMA may not execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 0 (CHANNEL 1))
- # Next DMA channel 5.
- # 16 bit DMA only
- # Logical device is not a bus master
- # DMA may not execute in count by byte mode
- # DMA may execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 1 (CHANNEL 5))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0220
- # Maximum IO base address 0x0220
- # IO base alignment 1 bytes
- # Number of IO addresses required: 16
- # (IO 0 (BASE 0x0220))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0330
- # Maximum IO base address 0x0330
- # IO base alignment 1 bytes
- # Number of IO addresses required: 2
- # (IO 1 (BASE 0x0330))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0388
- # Maximum IO base address 0x0388
- # IO base alignment 1 bytes
- # Number of IO addresses required: 4
- # (IO 2 (BASE 0x0388))
-
- # Start dependent functions: priority acceptable
- # IRQ 5, 7 or 10.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 5 (MODE +E)))
- # First DMA channel 0, 1 or 3.
- # 8 bit DMA only
- # Logical device is not a bus master
- # DMA may execute in count by byte mode
- # DMA may not execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 0 (CHANNEL 0))
- # Next DMA channel 5, 6 or 7.
- # 16 bit DMA only
- # Logical device is not a bus master
- # DMA may not execute in count by byte mode
- # DMA may execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 1 (CHANNEL 5))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0220
- # Maximum IO base address 0x0280
- # IO base alignment 32 bytes
- # Number of IO addresses required: 16
- # (IO 0 (BASE 0x0220))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0300
- # Maximum IO base address 0x0330
- # IO base alignment 48 bytes
- # Number of IO addresses required: 2
- # (IO 1 (BASE 0x0300))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0388
- # Maximum IO base address 0x0388
- # IO base alignment 1 bytes
- # Number of IO addresses required: 4
- # (IO 2 (BASE 0x0388))
-
- # Start dependent functions: priority acceptable
- # IRQ 5, 7 or 10.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 5 (MODE +E)))
- # First DMA channel 0, 1 or 3.
- # 8 bit DMA only
- # Logical device is not a bus master
- # DMA may execute in count by byte mode
- # DMA may not execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 0 (CHANNEL 0))
- # Next DMA channel 5, 6 or 7.
- # 16 bit DMA only
- # Logical device is not a bus master
- # DMA may not execute in count by byte mode
- # DMA may execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 1 (CHANNEL 5))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0220
- # Maximum IO base address 0x0280
- # IO base alignment 32 bytes
- # Number of IO addresses required: 16
- # (IO 0 (BASE 0x0220))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0300
- # Maximum IO base address 0x0330
- # IO base alignment 48 bytes
- # Number of IO addresses required: 2
- # (IO 1 (BASE 0x0300))
-
- # Start dependent functions: priority functional
- # IRQ 5, 7 or 10.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 5 (MODE +E)))
- # First DMA channel 0, 1 or 3.
- # 8 bit DMA only
- # Logical device is not a bus master
- # DMA may execute in count by byte mode
- # DMA may not execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 0 (CHANNEL 0))
- # Next DMA channel 5, 6 or 7.
- # 16 bit DMA only
- # Logical device is not a bus master
- # DMA may not execute in count by byte mode
- # DMA may execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 1 (CHANNEL 5))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0220
- # Maximum IO base address 0x0280
- # IO base alignment 32 bytes
- # Number of IO addresses required: 16
- # (IO 0 (BASE 0x0220))
-
- # Start dependent functions: priority functional
- # IRQ 5, 7 or 10.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 5 (MODE +E)))
- # First DMA channel 0, 1 or 3.
- # 8 bit DMA only
- # Logical device is not a bus master
- # DMA may execute in count by byte mode
- # DMA may not execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 0 (CHANNEL 0))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0220
- # Maximum IO base address 0x0280
- # IO base alignment 32 bytes
- # Number of IO addresses required: 16
- # (IO 0 (BASE 0x0220))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0300
- # Maximum IO base address 0x0330
- # IO base alignment 48 bytes
- # Number of IO addresses required: 2
- # (IO 1 (BASE 0x0300))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0388
- # Maximum IO base address 0x0388
- # IO base alignment 1 bytes
- # Number of IO addresses required: 4
- # (IO 2 (BASE 0x0388))
-
- # Start dependent functions: priority functional
- # IRQ 5, 7 or 10.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 5 (MODE +E)))
- # First DMA channel 0, 1 or 3.
- # 8 bit DMA only
- # Logical device is not a bus master
- # DMA may execute in count by byte mode
- # DMA may not execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 0 (CHANNEL 0))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0220
- # Maximum IO base address 0x0280
- # IO base alignment 32 bytes
- # Number of IO addresses required: 16
- # (IO 0 (BASE 0x0220))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0300
- # Maximum IO base address 0x0330
- # IO base alignment 48 bytes
- # Number of IO addresses required: 2
- # (IO 1 (BASE 0x0300))
-
- # Start dependent functions: priority functional
- # IRQ 5, 7, 10 or 11.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 5 (MODE +E)))
- # First DMA channel 0, 1 or 3.
- # 8 bit DMA only
- # Logical device is not a bus master
- # DMA may execute in count by byte mode
- # DMA may not execute in count by word mode
- # DMA channel speed in compatible mode
- # (DMA 0 (CHANNEL 0))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0220
- # Maximum IO base address 0x0280
- # IO base alignment 32 bytes
- # Number of IO addresses required: 16
- # (IO 0 (BASE 0x0220))
-
- # End dependent functions
- # (ACT Y)
- ))
- #
- # Logical device id CTL2011
- #
- # Edit the entries below to uncomment out the configuration required.
- # Note that only the first value of any range is given, this may be changed if required
- # Don't forget to uncomment the activate (ACT Y) when happy
-
- (CONFIGURE CTL0043/54664 (LD 1
- # Compatible device id PNP0600
- # ANSI string -->IDE<--
-
- # Multiple choice time, choose one only !
-
- # Start dependent functions: priority preferred
- # IRQ 10.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 10 (MODE +E)))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0168
- # Maximum IO base address 0x0168
- # IO base alignment 1 bytes
- # Number of IO addresses required: 8
- # (IO 0 (BASE 0x0168))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x036e
- # Maximum IO base address 0x036e
- # IO base alignment 1 bytes
- # Number of IO addresses required: 2
- # (IO 1 (BASE 0x036e))
-
- # Start dependent functions: priority acceptable
- # IRQ 11.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 11 (MODE +E)))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x01e8
- # Maximum IO base address 0x01e8
- # IO base alignment 1 bytes
- # Number of IO addresses required: 8
- # (IO 0 (BASE 0x01e8))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x03ee
- # Maximum IO base address 0x03ee
- # IO base alignment 1 bytes
- # Number of IO addresses required: 2
- # (IO 1 (BASE 0x03ee))
-
- # Start dependent functions: priority acceptable
- # IRQ 10, 11, 12 or 15.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 10 (MODE +E)))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0100
- # Maximum IO base address 0x01f8
- # IO base alignment 8 bytes
- # Number of IO addresses required: 8
- # (IO 0 (BASE 0x0100))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0300
- # Maximum IO base address 0x03fe
- # IO base alignment 2 bytes
- # Number of IO addresses required: 2
- # (IO 1 (BASE 0x0300))
-
- # Start dependent functions: priority functional
- # IRQ 15.
- # High true, edge sensitive interrupt (by default)
- # (INT 0 (IRQ 15 (MODE +E)))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0170
- # Maximum IO base address 0x0170
- # IO base alignment 1 bytes
- # Number of IO addresses required: 8
- # (IO 0 (BASE 0x0170))
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0376
- # Maximum IO base address 0x0376
- # IO base alignment 1 bytes
- # Number of IO addresses required: 1
- # (IO 1 (BASE 0x0376))
-
- # End dependent functions
- # (ACT Y)
- ))
- #
- # Logical device id CTL0021
- #
- # Edit the entries below to uncomment out the configuration required.
- # Note that only the first value of any range is given, this may be changed if required
- # Don't forget to uncomment the activate (ACT Y) when happy
-
- (CONFIGURE CTL0043/54664 (LD 2
- # ANSI string -->WaveTable<--
-
- # Multiple choice time, choose one only !
-
- # Start dependent functions: priority preferred
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0620
- # Maximum IO base address 0x0620
- # IO base alignment 1 bytes
- # Number of IO addresses required: 4
- # (IO 0 (BASE 0x0620))
-
- # Start dependent functions: priority acceptable
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0620
- # Maximum IO base address 0x0680
- # IO base alignment 32 bytes
- # Number of IO addresses required: 4
- # (IO 0 (BASE 0x0620))
-
- # End dependent functions
- # (ACT Y)
- ))
- #
- # Logical device id CTL7001
- #
- # Edit the entries below to uncomment out the configuration required.
- # Note that only the first value of any range is given, this may be changed if required
- # Don't forget to uncomment the activate (ACT Y) when happy
-
- (CONFIGURE CTL0043/54664 (LD 3
- # Compatible device id PNPb02f
- # ANSI string -->Game<--
- # Logical device decodes 16 bit IO address lines
- # Minimum IO base address 0x0200
- # Maximum IO base address 0x0200
- # IO base alignment 1 bytes
- # Number of IO addresses required: 8
- # (IO 0 (BASE 0x0200))
- # (ACT Y)
- ))
- # End tag... Checksum 0x00 (OK)
-
- 99..11..22.. TThhee eeddiitttteedd ccoonnffiigguurraattiioonn ffiillee ffoorr iissaappnnpp..
-
- # This is free software, see the sources for details.
- # This software has NO WARRANTY, use at your OWN RISK
- #
- # For details of this file format, see isapnp.conf(5)
- #
- # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
- #
- # Edited by jag 27 Jan 1997 to add IO Ports A20 and E20
- #
- # Trying port address 0203
- # Board 1 has serial identifier 0d 00 00 d5 88 43 00 8c 0e
-
- (DEBUG)
- (READPORT 0x0203)
- (ISOLATE)
- (IDENTIFY *)
-
- # Card 1: (serial identifier 0d 00 00 d5 88 43 00 8c 0e)
- # CTL0043 Serial No 54664 [checksum 0d]
- # Version 1.0, Vendor version 1.0
- # ANSI string -->Creative SB AWE32 PnP<--
- #
- # Logical device id CTL0031
- #
-
- (CONFIGURE CTL0043/54664 (LD 0
- # ANSI string -->Audio<--
- <P>
- (INT 0 (IRQ 5 (MODE +E)))
- # First DMA channel 1.
- (DMA 0 (CHANNEL 1))
- # Next DMA channel 5.
- (DMA 1 (CHANNEL 5))
- (IO 0 (BASE 0x0220))
- (IO 1 (BASE 0x0330))
- (IO 2 (BASE 0x0388))
- # End dependent functions
- (ACT Y)
- ))
- #
- # Logical device id CTL0021
- #
-
- (CONFIGURE CTL0043/54664 (LD 2
- # ANSI string -->WaveTable<--
-
- (IO 0 (BASE 0x0620))
- (IO 1 (BASE 0x0A20))
- (IO 2 (BASE 0x0E20))
-
- # End dependent functions
- (ACT Y)
- ))
- #
- # Logical device id CTL7001
- #
- (CONFIGURE CTL0043/54664 (LD 3
- # Compatible device id PNPb02f
- # ANSI string -->Game<--
- (IO 0 (BASE 0x0200))
- (ACT Y)
- ))
- # End tag... Checksum 0x00 (OK)
-
- 99..11..33.. AAnn eexxttrraacctt ooff tthhee bboooottuupp ssccrriipptt ttoo ccoonnffiigguurree ssoouunndd..
-
- #######################################################################
- # Add local action for palis.athena.inc 27 Jan 1997 jag
- # SoundBlaster AWE 32 pnp initlization
- # Load sound "fonts". NOTE: the synthgs.sbk from the SB install CDROM
- # Load sound.o module. This should be loaded before the "fonts".
- #######################################################################
-
- if [ -f /sbin/isapnp ]; then
- echo "Initializing the SouncBlaster AWE 32 pnp:"
- /sbin/isapnp /etc/isapnp.conf > /dev/null
- else
- echo "No pnp initialization code available.:
- exit 1
- fi
- #
- # According to Takashi IWAI, modprobe must come before sfxload
- #
- /sbin/modprobe -a sound
-
- if [ -f /usr/local/bin/sfxload ]; then
- echo "Loading Sound Fonts for General Midi:"
- /usr/local/bin/sfxload -Ii /usr/local/lib/awe/synthgs.sbk
- else
- echo "No Sound Font loading available.:
- fi
-
- 99..22.. PPrroobblleemmss wwiitthh tthhee AAzztteecchh SSoouunndd GGaallaaxxyy 1166 IIIIII--33DD PPnnPP ssoouunndd ccaarrdd..
-
- Stefan Markgraf has reported being unable to get the 16 bit MSS
- compatibility working with this card (Jul 97), and ended up changing
- it for a AWE64. The 8-bit Sound Blaster pro compatibility, MPU-401
- and OPL-3 functions work fine.
-
- 99..33.. CCDD ssoouunndd ddooeessnn''tt wwoorrkk ((oonnee cchhaannnneell oorr nnoo cchhaannnneellss))..
-
- There are two orientations for the CD player sound-card signals, try
- reversing the connector on the sound card if the CD player sound
- doesn't work. (From an email from kjcox@students.wisc.edu).
-
- After much fiddling, I finally got it to work but in the
- strangest manner. I reversed the cable from the CD-ROM to
- the sound card 180 degrees while the computer was up and
- running. I had to first remove the white box on the sound
- card into which the cable fits. I tried it both ways and
- then when I put it back while the computer was running (hey,
- I got desperate) it suddenly decided to work. It took
- awhile though to get there.
-
- Anyway, something to add to your FAQ. Try removing the
- white box and reversing the cord. You can either turn the
- box around or switch it altogether.
-
- 99..44.. WWhhaatt ttoo ddoo aabboouutt ""ssbb:: IInntteerrrruupptt tteesstt oonn IIRRQQ1100 ffaaiilleedd -- ddeevviiccee
- ddiissaabblleedd..""
-
- This kernel message means that the sound driver couldn't get an
- interrupt from the sound card on the channel you told it to use. This
- could be due to the soundcard using a different interrupt, or more
- than one device trying to use the same interrupt.
-
- I get this one too. I managed to get rid of it by changing the
- preallocated ISA interrupts in the BIOS but, unfortunately, when I got
- the sound working, all the other PnP stuff stopped working. In my
- case, the sound is built into the motherboard, and there seems to be
- no way to configure it directly in the BIOS, so it's guesswork to try
- to find the interrupt allocation. If I had Win95, it might be possible
- to find it by looking at the Win95 allocation. This is where an ESCD
- BIOS interface would be useful - any takers ?
-
- 1100.. MMooddeemmss..
-
- These are the easiest PnP devices to get installed, due to the ability
- to configure devices (using _s_e_t_s_e_r_i_a_l) after the kernel has booted.
- This allows experiments to be made with the settings without having to
- reboot.
-
- There are a few gotchas though:
-
- Beware of products using phrases such as "Winmodem" or "Specially
- designed to work with Windows or Windows 95". These may well not work
- as standalone products, and require the driver provided with Windows
- to work.
-
- In a similar way some newer modems may not have the DSP code builtin,
- but rely on a program during boot to download the code into them.
- These will work in Linux if it is booted after running DOS/Windows,
- but they won't work directly after a power up into Linux.
-
- Watch out for PCI modems. These often don't have UARTs, and so will
- require a special driver to work with Linux. (They cannot be
- configured using isapnptools anyway, the BIOS will have done it).
-
- 1100..11.. GGeenneerraall..
-
- See the file <README.modules> in the distribution for an example of
- how to get a PnP modem card running.
-
- See also the Serial-HOWTO available from MetaLab
- <ftp://MetaLab.unc.edu/pub/Linux/docs/HOWTO/Serial-HOWTO> or from
- TSX-11 <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO/Serial-HOWTO>, or
- from their respective mirrors.
-
- 1100..22.. II''vvee ggoott aa WWiinnMMooddeemm,, aanndd II''vvee ffoolllloowweedd aallll tthhee iinnssttrruuccttiioonnss,,
- bbuutt iitt ssttiillll ddooeessnn''tt wwoorrkk..
-
- Unfortunately, a "WinModem" is only half a modem. A significant
- proportion of the modem functionality is in the Windows driver, which
- is not present when trying to use it with Linux.
- The easiest solution at present is to take it back and get a
- traditional type of modem which can be used on Unix systems. (Of
- course, if you have the ability, inclination, and required technical
- information, I'm sure there are many who would like to see a Linux
- driver for these beasts).
-
- 1100..33.. II''vvee ggoott aa PPCCII mmooddeemm -- wwhhaatt aabboouutt tthhaatt ??
-
- PCI modems are generally winmodems. So see above.
-
- In any event isapnptools won't do anything for you.
-
- 1100..44.. II''vvee ggoott aa mmooddeemm tthhaatt wwoorrkkss iinn DDOOSS aanndd WWiinnddoowwss,, bbuutt nnoott LLiinnuuxx..
-
- It may be that the card needs DSP code downloading onto it before
- it'll work. This can sometimes be done by booting via DOS and loadlin.
-
- 1100..55.. II''vvee ccoonnffiigguurreedd tthhee ddeevviiccee,, bbuutt iitt iiss rreeaallllyy SSLLOOWW..
-
- Very slow activity can be due to interrupt clashes. When the program
- that uses the port is running, what does proc/interrupts/ say ? If the
- interrupt count is always 0 for the serial port, you probably have a
- hardware clash with two devices using the same interrupt line. Check
- your BIOS PCI settings for preallocated interrupt lines too.
-
- If this is the case, reassign the interrupts so that they no longer
- clash.
-
- 1100..66.. II''vvee ccoonnffiigguurreedd tthhee ddeevviiccee,, bbuutt iitt ddooeessnn''tt wwoorrkk..
-
- Try running your modem communication program under strace to see what
- it is doing.
-
- 1100..77.. WWhhaatt''ss tthhiiss aabboouutt nnoott uussiinngg //ddeevv//ccuuaa11 ??
-
- It's just something I've read in the mgetty+sendfax documentation. The
- two devices behave differently on file open, and were intended for
- dealing with modems set to auto answer. If you want to send faxes
- and/or allow dialing in, I suggest you get and install mgetty+sendfax,
- it includes an email from the writer of the serial device driver on
- why only ttySx should be used. I've seen hints that the cuax devices
- may be going in future kernels.
-
- The mgetty program listens to the modem and answers it manually, thus
- preventing a wasted call which would have occurred with an auto-answer
- modem and crashed computer.
-
- 1100..88.. HHooww ccaann II cchheecckk tthhee mmooddeemm iiss wwoorrkkiinngg ??
-
- I use cu to talk to the modem. It replies with OK when I type <cr>.
- After a few transfers like this, check /proc/interrupts has increased
- by the number of characters transferred. If it hasn't, there is a
- resource clash, so try another interrupt. Note that IRQ3 and IRQ4 are
- almost guaranteed to be used by the motherboard, so don't use these
- for PnP modems.
-
- 1100..99.. TThhuunnddeerrlliinnkk mmooddeemmss ((PPCCTT33888800))..
-
- It has been reported that thunderlink modems are not supported for
- linux or DOS. It gives the following identification:
-
- PCT3880/0[0]{PC-TEL HSP K56FLEX PNP D/F/V MODEM}
-
- 1100..1100.. UUSSRR RRoobboottiiccss SSppoorrttsstteerr..
-
- If it has jumpers, use them to set the device settings if you can't
- get PnP configuration to work.
-
- 1111.. NNeettwwoorrkk ccaarrddss..
-
- See the file <README.modules> in the distribution for an example of
- how to get a PnP ethernet card running, using a loadable kernel module
- driver.
-
- See also the Ethernet-HOWTO available from MetaLab
- <ftp://MetaLab.unc.edu/pub/Linux/docs/HOWTO/Ethernet-HOWTO> or from
- TSX-11 <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO/Ethernet-HOWTO>, or
- from their respective mirrors.
-
- 1111..11.. TThhee ccaarrdd ssuuppppoorrttss nnoonn PPnnPP ccoonnffiigguurraattiioonn..
-
- If the network card supports jumperless mode (fix the card's
- configuration using a DOS program that comes with it), or has jumpers
- to disable PnP mode and configure the device; if PnP settings don't
- work, the simplest thing to do is to configure the card in jumperless
- (non PnP) mode, or using the jumpers, to a fixed address and interrupt
- (I use 0x340 and IRQ10).
-
- In the BIOS, assign IRQ10 to legacy ISA. If you have other PnP devices
- which require configuring, remember to add the network card resources
- used to the /etc/isapnp.gone file.
-
- Build the network driver as a module, then load it during bootup with
- commands such as (for my NE2000 clone for example):
-
- # # And the network card # MODULESDIR="/usr/src/linux.`uname
- -r`.pf/modules" rm /modules ln -s $MODULESDIR /modules insmod
- $MODULESDIR/8390.o insmod $MODULESDIR/ne.o io=0x340
-
- This method won't require isapnp to configure the network card (in
- fact, isapnp won't be able to see it).
-
- 1122.. IIDDEE ppoorrttss..
-
- See the file <README.ide> in the distribution for some ideas on how
- to get a PnP IDE interface running. These are often found on sound
- cards.
-
- If you are running a 2.1.x kernel, it is apparently possible to rescan
- the IDE interface after boot up, but only if no devices are in use on
- that controller.
-
- Have a look at archive/latest/872 on the pnp-list archives.
-
- 1133.. DDiissccllaaiimmeerrss eettcc..
-
- Information is provided AS IS. No guarantee of accuracy or usefulness
- is provided.
-
- There is no intention to provide legal advice in this document either.
- If you think there is some, I assure you there isn't, I suggest you
- seek local advice.
-
- (R) Linux is a registered trademark of Linux Torvalds.
-
- Other trademarks are the property of their respective owners.
-
-